Skip to content

feat(llm-obs): add dataset-records reads + experiment eval-metric submit - #674

Merged
platinummonkey merged 2 commits into
DataDog:mainfrom
gsvigruha:llmobs-add-dataset-records-and-experiment-events
Jul 24, 2026
Merged

feat(llm-obs): add dataset-records reads + experiment eval-metric submit#674
platinummonkey merged 2 commits into
DataDog:mainfrom
gsvigruha:llmobs-add-dataset-records-and-experiment-events

Conversation

@gsvigruha

@gsvigruha gsvigruha commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

What

Adds three llm-obs subcommands backed by the unstable llm-obs-mcp v1 endpoints, closing the gap between pup and the LLM Obs MCP toolset:

Command MCP tool Endpoint
llm-obs experiments events submit <exp-id> --file submit_llmobs_experiment_events POST /api/unstable/llm-obs-mcp/v1/experiment/ingest-events
llm-obs datasets records get_llmobs_dataset_records POST /api/unstable/llm-obs-mcp/v1/dataset/records
llm-obs datasets records-full get_llmobs_full_dataset_records POST /api/unstable/llm-obs-mcp/v1/dataset/records-full

Why

These are the three LLM Obs MCP tools the agent-observability-auto-experiment skill relies on that pup previously lacked (experiment eval-metric submission + both dataset-record reads). Adding them lets that workflow run through pup.

Design

  • events submit takes the events body (metrics, optional tags) via --file JSON — matching the existing pup convention for writes (create/update/batch-update). experiment_id is the positional arg and overrides any value in the file.
  • datasets records exposes the read filters as flags: --record-ids, --tags, --canonical-id, --dataset-version, --limit, --cursor, --compute-schema.
  • datasets records-full takes --project-id, --dataset-id, --record-ids (1–3).
  • Nested naturally under the existing experiments events / datasets groups.

Tests / checks

  • cargo build
  • cargo test llm_obs ✅ — 6 new tests (success + error paths for each command)
  • cargo clippy ✅ no warnings
  • cargo fmt applied
  • Docs updated: README coverage table + docs/COMMANDS.md

🤖 Generated with Claude Code

tillwf and others added 2 commits July 24, 2026 18:17
Add three llm-obs subcommands backed by the unstable llm-obs-mcp v1
endpoints, closing the gap vs the LLM Obs MCP toolset:

- experiments events submit  -> POST /experiment/ingest-events
    (submit_llmobs_experiment_events; metrics/tags via --file JSON,
     experiment_id from the positional arg)
- datasets records           -> POST /dataset/records
    (get_llmobs_dataset_records; record-ids/tags/canonical-id/
     dataset-version/limit/cursor/compute-schema flags)
- datasets records-full      -> POST /dataset/records-full
    (get_llmobs_full_dataset_records; 1-3 record ids)

These are the tools the agent-observability auto-experiment skill needs
that pup previously lacked. Docs (README coverage table, COMMANDS.md)
updated; unit tests added for success + error paths.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the `--file` body with inline `--metrics` (JSON array) and
`--tags` flags so the command mirrors the submit_llmobs_experiment_events
MCP tool's argument shape, letting skills map between pup and the MCP
toolset. Remains a raw pass-through: metrics is parsed only to embed it
as JSON and forwarded to the same ingest-events endpoint; the server
validates the payload.

- experiment_id stays positional
- --metrics required, --tags optional (comma-separated)
- update tests + add invalid-JSON negative test

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gsvigruha
gsvigruha requested a review from a team as a code owner July 24, 2026 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants